mock模拟数据
(一) 安装和使用方法
安装
npm install mockjs
使用
var Mock = require('mockjs') var data = Mock.mock({ //属性list的值是一个数组,其中含1到10个元素 'list|1-10':[{ //属性id是一个自增数,起始值为1,每次增1 'id|+1':1000 }] }) console.log(data);
数据占位符
(1) 说明
- 占位符 只是在属性值字符串中占个位置,并不出现在最终的属性值中。
- 用@来标识占位符
- 占位符引用的是 Mock.Random中的方法
- Mock.Random.extend()来扩展自定义占位符
- 占位符 会优先引用 数据模板 中的属性。
- 占位符 支持 相对路径 和 绝对路径。
(2) 使用方法
- Random.xxx() //使用Random函数
- Mock.mock('@xxx') // 使用占位符 注意:其中xxx为random对应方法,也对应@xxx的占位符
(二) Random方法总结
(1) 常用
1. Random.boolean() 随机布尔值 2. Random.integer( min?, max? ) 随机整数min-max之间 3. Random.string( pool?, min?, max? ) 随机字符串 4. Random.date( format? ) 随机日期 5. Random.word( min?, max? ) 随机字母 6. Random.cparagraph( min?, max? ) 中文段落 7. Random.csentence( min?, max? ) 中文句子 8. Random.cword( pool?, min?, max? ) 汉字 9. Random.name( middle? ) 姓名 10. Random.cname() 中文姓名 11. Random.city( prefix? ) 市 (prefix是否带前缀省,值为boolean) 12. Random.county( prefix? ) 区县 (prefix是否带缀省,市)
(2) 不常用
1. Random.natural( min?, max? ) 随机自然数 min-max之间 2. Random.float() 随机浮点数 Random.character( pool? ) 随机字母 pool对应有(lower[小写]/upper[大写]/number[数字]/symbol[符号]) 3. Random.range(start?, stop, step?) 随机范围数字组成的数组 4. Random.time( format? ) 随机时间 5. Random.datetime( format? ) 随机日期+时间 6. Random.now( unit?, format? ) 当前时间 7. Random.image( size?, background?, foreground?, format?, text? ) 图片占位 8. Random.dataImage( size?, text? ) 生成base64格式图片 9. Random.color() 随机颜色 10. Random.rgb() 随机rgb颜色 11. Random.rgba() rgba颜色值 12. Random.paragraph( min?, max? ) 段落 13. Random.sentence() 14. Random.word( min?, max? ) 15. Random.title( min?, max? ) 16. Random.ctitle( min?, max? ) 标题 17. Random.first() 姓 18. Random.last() 名 19. Random.name( middle? ) 姓名 20. Random.cfirst() 中文姓 21. Random.clast() 中文名 22. Random.url() 随机URL 23. Random.domain() 随机域名 24. Random.protocol() 25. Random.email() 邮箱 26. Random.region() 27. Random.province() 省 28. Random.increment( step? ) 递增
03 一个实例
let testData = [] for(let i =0;i<10;i++){ testData.push(mock.mock({ 'id':mock.mock('@id'), 'userName':mock.mock('@cname'), 'age|18-45':1, 'gender|1':['男','女'], 'addr':mock.mock('@city(true)'), })) } console.log(testData) // 结果 {id: "230000199503251711", userName: "田刚", age: 32, gender: "女", addr: "陕西省 安康市"} {id: "220000198911247467", userName: "卢刚", age: 22, gender: "女", addr: "重庆 重庆市"} {id: "630000199203303369", userName: "黄超", age: 30, gender: "女", addr: "上海 上海市"} {id: "32000019900306070X", userName: "任超", age: 41, gender: "女", addr: "云南省 怒江傈僳族自治州"} {id: "370000201106237773", userName: "金刚", age: 20, gender: "男", addr: "香港特别行政区 新界"} {id: "150000200106151982", userName: "汤涛", age: 22, gender: "女", addr: "海南省 海口市"} {id: "630000201610178622", userName: "康伟", age: 34, gender: "女", addr: "天津 天津市"} {id: "32000019860919883X", userName: "吕艳", age: 41, gender: "女", addr: "山西省 晋城市"} {id: "510000198203211040", userName: "丁霞", age: 38, gender: "男", addr: "山东省 烟台市"} {id: "220000197505283433", userName: "叶超", age: 33, gender: "女", addr: "河南省 南阳市"}